<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MRSL Motion Primitive Library: MPL::env_map&lt; Dim &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">MRSL Motion Primitive Library
   &#160;<span id="projectnumber">1.2</span>
   </div>
   <div id="projectbrief">A motion primitive library for generating trajectory for mobile robots</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><b>MPL</b></li><li class="navelem"><a class="el" href="classMPL_1_1env__map.html">env_map</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="classMPL_1_1env__map-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">MPL::env_map&lt; Dim &gt; Class Template Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Voxel map environment.  
 <a href="classMPL_1_1env__map.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="env__map_8h_source.html">env_map.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for MPL::env_map&lt; Dim &gt;:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classMPL_1_1env__map.png" usemap="#MPL::env_5Fmap_3C_20Dim_20_3E_map" alt=""/>
  <map id="MPL::env_5Fmap_3C_20Dim_20_3E_map" name="MPL::env_5Fmap_3C_20Dim_20_3E_map">
<area href="classMPL_1_1env__base.html" title="Base environment class. " alt="MPL::env_base&lt; Dim &gt;" shape="rect" coords="0,0,144,24"/>
</map>
 </div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a1c34f1f4e9c822470d3a15c88f3164fc"><td class="memItemLeft" align="right" valign="top"><a id="a1c34f1f4e9c822470d3a15c88f3164fc"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMPL_1_1env__map.html#a1c34f1f4e9c822470d3a15c88f3164fc">env_map</a> (std::shared_ptr&lt; <a class="el" href="classMPL_1_1MapUtil.html">MapUtil</a>&lt; Dim &gt;&gt; map_util)</td></tr>
<tr class="memdesc:a1c34f1f4e9c822470d3a15c88f3164fc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor with map util as input. <br /></td></tr>
<tr class="separator:a1c34f1f4e9c822470d3a15c88f3164fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a40c301e16f4413100e8600b3931be7ad"><td class="memItemLeft" align="right" valign="top"><a id="a40c301e16f4413100e8600b3931be7ad"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMPL_1_1env__map.html#a40c301e16f4413100e8600b3931be7ad">is_goal</a> (const <a class="el" href="structWaypoint.html">Waypoint</a>&lt; Dim &gt; &amp;state) const</td></tr>
<tr class="memdesc:a40c301e16f4413100e8600b3931be7ad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if state hit the goal region, use L-1 norm. <br /></td></tr>
<tr class="separator:a40c301e16f4413100e8600b3931be7ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a257df36534163eef0292854d38477a6b"><td class="memItemLeft" align="right" valign="top"><a id="a257df36534163eef0292854d38477a6b"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMPL_1_1env__map.html#a257df36534163eef0292854d38477a6b">is_free</a> (const <a class="el" href="data__type_8h.html#a3a0c45655a5e009e56634ccde0c5c575">Vecf</a>&lt; Dim &gt; &amp;pt) const</td></tr>
<tr class="memdesc:a257df36534163eef0292854d38477a6b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if a point is in free space. <br /></td></tr>
<tr class="separator:a257df36534163eef0292854d38477a6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7229298e89baa8b1acb1ed1affda30a4"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMPL_1_1env__map.html#a7229298e89baa8b1acb1ed1affda30a4">is_free</a> (const <a class="el" href="classPrimitive.html">Primitive</a>&lt; Dim &gt; &amp;pr) const</td></tr>
<tr class="memdesc:a7229298e89baa8b1acb1ed1affda30a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if the primitive is in free space.  <a href="#a7229298e89baa8b1acb1ed1affda30a4">More...</a><br /></td></tr>
<tr class="separator:a7229298e89baa8b1acb1ed1affda30a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a84ab1c20552e01476e40cc5f116d4d73"><td class="memItemLeft" align="right" valign="top"><a class="el" href="data__type_8h.html#a7c99d9360fc6cac2762b786e2fb52266">decimal_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMPL_1_1env__map.html#a84ab1c20552e01476e40cc5f116d4d73">traverse_primitive</a> (const <a class="el" href="classPrimitive.html">Primitive</a>&lt; Dim &gt; &amp;pr) const</td></tr>
<tr class="memdesc:a84ab1c20552e01476e40cc5f116d4d73"><td class="mdescLeft">&#160;</td><td class="mdescRight">Accumulate the cost along the primitive.  <a href="#a84ab1c20552e01476e40cc5f116d4d73">More...</a><br /></td></tr>
<tr class="separator:a84ab1c20552e01476e40cc5f116d4d73"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad508bed13e2c697cb14a597615424d9f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMPL_1_1env__map.html#ad508bed13e2c697cb14a597615424d9f">get_succ</a> (const <a class="el" href="structWaypoint.html">Waypoint</a>&lt; Dim &gt; &amp;curr, <a class="el" href="data__type_8h.html#a6b9210d48a0a541940af71827aad1b41">vec_E</a>&lt; <a class="el" href="structWaypoint.html">Waypoint</a>&lt; Dim &gt;&gt; &amp;succ, std::vector&lt; <a class="el" href="data__type_8h.html#a7c99d9360fc6cac2762b786e2fb52266">decimal_t</a> &gt; &amp;succ_cost, std::vector&lt; int &gt; &amp;action_idx) const</td></tr>
<tr class="memdesc:ad508bed13e2c697cb14a597615424d9f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get successor.  <a href="#ad508bed13e2c697cb14a597615424d9f">More...</a><br /></td></tr>
<tr class="separator:ad508bed13e2c697cb14a597615424d9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a37c314a52d6bba0fa9675099d40b322c"><td class="memItemLeft" align="right" valign="top"><a id="a37c314a52d6bba0fa9675099d40b322c"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMPL_1_1env__map.html#a37c314a52d6bba0fa9675099d40b322c">set_gradient_map</a> (const <a class="el" href="data__type_8h.html#a6b9210d48a0a541940af71827aad1b41">vec_E</a>&lt; <a class="el" href="data__type_8h.html#a3a0c45655a5e009e56634ccde0c5c575">Vecf</a>&lt; Dim &gt;&gt; &amp;map)</td></tr>
<tr class="memdesc:a37c314a52d6bba0fa9675099d40b322c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set gradient map. <br /></td></tr>
<tr class="separator:a37c314a52d6bba0fa9675099d40b322c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a27101292af5b56676fca7374e1c1f5f1"><td class="memItemLeft" align="right" valign="top"><a id="a27101292af5b56676fca7374e1c1f5f1"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMPL_1_1env__map.html#a27101292af5b56676fca7374e1c1f5f1">set_gradient_weight</a> (<a class="el" href="data__type_8h.html#a7c99d9360fc6cac2762b786e2fb52266">decimal_t</a> w)</td></tr>
<tr class="memdesc:a27101292af5b56676fca7374e1c1f5f1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set gradient weight. <br /></td></tr>
<tr class="separator:a27101292af5b56676fca7374e1c1f5f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a061bd8a136a679ee196455c8170269bc"><td class="memItemLeft" align="right" valign="top"><a id="a061bd8a136a679ee196455c8170269bc"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMPL_1_1env__map.html#a061bd8a136a679ee196455c8170269bc">set_potential_map</a> (const std::vector&lt; int8_t &gt; &amp;map)</td></tr>
<tr class="memdesc:a061bd8a136a679ee196455c8170269bc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set potential map. <br /></td></tr>
<tr class="separator:a061bd8a136a679ee196455c8170269bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4d832ec079d5ffe034aca016a9fa6227"><td class="memItemLeft" align="right" valign="top"><a id="a4d832ec079d5ffe034aca016a9fa6227"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMPL_1_1env__map.html#a4d832ec079d5ffe034aca016a9fa6227">set_potential_weight</a> (<a class="el" href="data__type_8h.html#a7c99d9360fc6cac2762b786e2fb52266">decimal_t</a> w)</td></tr>
<tr class="memdesc:a4d832ec079d5ffe034aca016a9fa6227"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set potential weight. <br /></td></tr>
<tr class="separator:a4d832ec079d5ffe034aca016a9fa6227"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2d7be70921dce29559e33f3e59fc8c5a"><td class="memItemLeft" align="right" valign="top"><a id="a2d7be70921dce29559e33f3e59fc8c5a"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMPL_1_1env__map.html#a2d7be70921dce29559e33f3e59fc8c5a">set_prior_trajectory</a> (const <a class="el" href="classTrajectory.html">Trajectory</a>&lt; Dim &gt; &amp;traj)</td></tr>
<tr class="memdesc:a2d7be70921dce29559e33f3e59fc8c5a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set prior trajectory. <br /></td></tr>
<tr class="separator:a2d7be70921dce29559e33f3e59fc8c5a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:affcb3f4534d828b9d2751292cef5cf24"><td class="memItemLeft" align="right" valign="top"><a id="affcb3f4534d828b9d2751292cef5cf24"></a>
<a class="el" href="data__type_8h.html#a7c99d9360fc6cac2762b786e2fb52266">decimal_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMPL_1_1env__map.html#affcb3f4534d828b9d2751292cef5cf24">traverse_trajectory</a> (const <a class="el" href="classTrajectory.html">Trajectory</a>&lt; Dim &gt; &amp;traj) const</td></tr>
<tr class="memdesc:affcb3f4534d828b9d2751292cef5cf24"><td class="mdescLeft">&#160;</td><td class="mdescRight">traverse trajectory <br /></td></tr>
<tr class="separator:affcb3f4534d828b9d2751292cef5cf24"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae21503c9a6461602c4e7e09db66b8111"><td class="memItemLeft" align="right" valign="top"><a id="ae21503c9a6461602c4e7e09db66b8111"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMPL_1_1env__map.html#ae21503c9a6461602c4e7e09db66b8111">info</a> ()</td></tr>
<tr class="memdesc:ae21503c9a6461602c4e7e09db66b8111"><td class="mdescLeft">&#160;</td><td class="mdescRight">Print out params. <br /></td></tr>
<tr class="separator:ae21503c9a6461602c4e7e09db66b8111"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classMPL_1_1env__base"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classMPL_1_1env__base')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classMPL_1_1env__base.html">MPL::env_base&lt; Dim &gt;</a></td></tr>
<tr class="memitem:a73390f0939fc1efd123696f3e805f98e inherit pub_methods_classMPL_1_1env__base"><td class="memItemLeft" align="right" valign="top"><a id="a73390f0939fc1efd123696f3e805f98e"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMPL_1_1env__base.html#a73390f0939fc1efd123696f3e805f98e">env_base</a> ()</td></tr>
<tr class="memdesc:a73390f0939fc1efd123696f3e805f98e inherit pub_methods_classMPL_1_1env__base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Simple constructor. <br /></td></tr>
<tr class="separator:a73390f0939fc1efd123696f3e805f98e inherit pub_methods_classMPL_1_1env__base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3f5a3aa9e6be63c4bbfe96e09b56a68b inherit pub_methods_classMPL_1_1env__base"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="data__type_8h.html#a7c99d9360fc6cac2762b786e2fb52266">decimal_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMPL_1_1env__base.html#a3f5a3aa9e6be63c4bbfe96e09b56a68b">get_heur</a> (const <a class="el" href="structWaypoint.html">Waypoint</a>&lt; Dim &gt; &amp;state) const</td></tr>
<tr class="memdesc:a3f5a3aa9e6be63c4bbfe96e09b56a68b inherit pub_methods_classMPL_1_1env__base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Heuristic function.  <a href="classMPL_1_1env__base.html#a3f5a3aa9e6be63c4bbfe96e09b56a68b">More...</a><br /></td></tr>
<tr class="separator:a3f5a3aa9e6be63c4bbfe96e09b56a68b inherit pub_methods_classMPL_1_1env__base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6bda580c1bc7ca88ce2671f1533fc08a inherit pub_methods_classMPL_1_1env__base"><td class="memItemLeft" align="right" valign="top"><a id="a6bda580c1bc7ca88ce2671f1533fc08a"></a>
virtual <a class="el" href="data__type_8h.html#a7c99d9360fc6cac2762b786e2fb52266">decimal_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMPL_1_1env__base.html#a6bda580c1bc7ca88ce2671f1533fc08a">cal_heur</a> (const <a class="el" href="structWaypoint.html">Waypoint</a>&lt; Dim &gt; &amp;state, const <a class="el" href="structWaypoint.html">Waypoint</a>&lt; Dim &gt; &amp;goal) const</td></tr>
<tr class="memdesc:a6bda580c1bc7ca88ce2671f1533fc08a inherit pub_methods_classMPL_1_1env__base"><td class="mdescLeft">&#160;</td><td class="mdescRight">calculate the cost from state to goal <br /></td></tr>
<tr class="separator:a6bda580c1bc7ca88ce2671f1533fc08a inherit pub_methods_classMPL_1_1env__base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa9a38f44386ae7778411212b63fa42b7 inherit pub_methods_classMPL_1_1env__base"><td class="memItemLeft" align="right" valign="top"><a id="aa9a38f44386ae7778411212b63fa42b7"></a>
<a class="el" href="data__type_8h.html#ac208833a6aa7ec29f39eb5ae142aaede">Veci</a>&lt; Dim &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMPL_1_1env__base.html#aa9a38f44386ae7778411212b63fa42b7">round</a> (const <a class="el" href="data__type_8h.html#a3a0c45655a5e009e56634ccde0c5c575">Vecf</a>&lt; Dim &gt; &amp;vec, <a class="el" href="data__type_8h.html#a7c99d9360fc6cac2762b786e2fb52266">decimal_t</a> res) const</td></tr>
<tr class="memdesc:aa9a38f44386ae7778411212b63fa42b7 inherit pub_methods_classMPL_1_1env__base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Replace the original cast function. <br /></td></tr>
<tr class="separator:aa9a38f44386ae7778411212b63fa42b7 inherit pub_methods_classMPL_1_1env__base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa929ae0eb7125962b07a3fcff970251d inherit pub_methods_classMPL_1_1env__base"><td class="memItemLeft" align="right" valign="top"><a id="aa929ae0eb7125962b07a3fcff970251d"></a>
std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMPL_1_1env__base.html#aa929ae0eb7125962b07a3fcff970251d">to_string</a> (const <a class="el" href="data__type_8h.html#ac208833a6aa7ec29f39eb5ae142aaede">Veci</a>&lt; Dim &gt; &amp;vec) const</td></tr>
<tr class="memdesc:aa929ae0eb7125962b07a3fcff970251d inherit pub_methods_classMPL_1_1env__base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a vec to a string. <br /></td></tr>
<tr class="separator:aa929ae0eb7125962b07a3fcff970251d inherit pub_methods_classMPL_1_1env__base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a22bf748adf6a4febbc7b4b943e76940a inherit pub_methods_classMPL_1_1env__base"><td class="memItemLeft" align="right" valign="top"><a id="a22bf748adf6a4febbc7b4b943e76940a"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMPL_1_1env__base.html#a22bf748adf6a4febbc7b4b943e76940a">forward_action</a> (const <a class="el" href="structWaypoint.html">Waypoint</a>&lt; Dim &gt; &amp;curr, int action_id, <a class="el" href="classPrimitive.html">Primitive</a>&lt; Dim &gt; &amp;pr) const</td></tr>
<tr class="memdesc:a22bf748adf6a4febbc7b4b943e76940a inherit pub_methods_classMPL_1_1env__base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Recover trajectory. <br /></td></tr>
<tr class="separator:a22bf748adf6a4febbc7b4b943e76940a inherit pub_methods_classMPL_1_1env__base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5fe3e7b63d589bbf1ccec75cb28e6626 inherit pub_methods_classMPL_1_1env__base"><td class="memItemLeft" align="right" valign="top"><a id="a5fe3e7b63d589bbf1ccec75cb28e6626"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMPL_1_1env__base.html#a5fe3e7b63d589bbf1ccec75cb28e6626">set_u</a> (const <a class="el" href="data__type_8h.html#a6b9210d48a0a541940af71827aad1b41">vec_E</a>&lt; <a class="el" href="data__type_8h.html#a07429e7561c286f5368c5babef590194">VecDf</a> &gt; &amp;U)</td></tr>
<tr class="memdesc:a5fe3e7b63d589bbf1ccec75cb28e6626 inherit pub_methods_classMPL_1_1env__base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set control input. <br /></td></tr>
<tr class="separator:a5fe3e7b63d589bbf1ccec75cb28e6626 inherit pub_methods_classMPL_1_1env__base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab2b77b8f234481dc74d0223a87dcff3c inherit pub_methods_classMPL_1_1env__base"><td class="memItemLeft" align="right" valign="top"><a id="ab2b77b8f234481dc74d0223a87dcff3c"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMPL_1_1env__base.html#ab2b77b8f234481dc74d0223a87dcff3c">set_v_max</a> (<a class="el" href="data__type_8h.html#a7c99d9360fc6cac2762b786e2fb52266">decimal_t</a> v)</td></tr>
<tr class="memdesc:ab2b77b8f234481dc74d0223a87dcff3c inherit pub_methods_classMPL_1_1env__base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set max vel in each axis. <br /></td></tr>
<tr class="separator:ab2b77b8f234481dc74d0223a87dcff3c inherit pub_methods_classMPL_1_1env__base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a17295278edfcd6cbc265d01371aac43f inherit pub_methods_classMPL_1_1env__base"><td class="memItemLeft" align="right" valign="top"><a id="a17295278edfcd6cbc265d01371aac43f"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMPL_1_1env__base.html#a17295278edfcd6cbc265d01371aac43f">set_a_max</a> (<a class="el" href="data__type_8h.html#a7c99d9360fc6cac2762b786e2fb52266">decimal_t</a> a)</td></tr>
<tr class="memdesc:a17295278edfcd6cbc265d01371aac43f inherit pub_methods_classMPL_1_1env__base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set max acc in each axis. <br /></td></tr>
<tr class="separator:a17295278edfcd6cbc265d01371aac43f inherit pub_methods_classMPL_1_1env__base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a70b6fa02c57c146aa26eb85abc085d2a inherit pub_methods_classMPL_1_1env__base"><td class="memItemLeft" align="right" valign="top"><a id="a70b6fa02c57c146aa26eb85abc085d2a"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMPL_1_1env__base.html#a70b6fa02c57c146aa26eb85abc085d2a">set_j_max</a> (<a class="el" href="data__type_8h.html#a7c99d9360fc6cac2762b786e2fb52266">decimal_t</a> j)</td></tr>
<tr class="memdesc:a70b6fa02c57c146aa26eb85abc085d2a inherit pub_methods_classMPL_1_1env__base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set max acc in each axis. <br /></td></tr>
<tr class="separator:a70b6fa02c57c146aa26eb85abc085d2a inherit pub_methods_classMPL_1_1env__base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaff1cc4715bc47e32ef95d82a68d47d1 inherit pub_methods_classMPL_1_1env__base"><td class="memItemLeft" align="right" valign="top"><a id="aaff1cc4715bc47e32ef95d82a68d47d1"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMPL_1_1env__base.html#aaff1cc4715bc47e32ef95d82a68d47d1">set_yaw_max</a> (<a class="el" href="data__type_8h.html#a7c99d9360fc6cac2762b786e2fb52266">decimal_t</a> yaw)</td></tr>
<tr class="memdesc:aaff1cc4715bc47e32ef95d82a68d47d1 inherit pub_methods_classMPL_1_1env__base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set max acc in each axis. <br /></td></tr>
<tr class="separator:aaff1cc4715bc47e32ef95d82a68d47d1 inherit pub_methods_classMPL_1_1env__base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af8408acf8e66abd1d07f69d55e03a4dc inherit pub_methods_classMPL_1_1env__base"><td class="memItemLeft" align="right" valign="top"><a id="af8408acf8e66abd1d07f69d55e03a4dc"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMPL_1_1env__base.html#af8408acf8e66abd1d07f69d55e03a4dc">set_dt</a> (<a class="el" href="data__type_8h.html#a7c99d9360fc6cac2762b786e2fb52266">decimal_t</a> dt)</td></tr>
<tr class="memdesc:af8408acf8e66abd1d07f69d55e03a4dc inherit pub_methods_classMPL_1_1env__base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set dt for primitive. <br /></td></tr>
<tr class="separator:af8408acf8e66abd1d07f69d55e03a4dc inherit pub_methods_classMPL_1_1env__base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8c3490b413cb9a37dd40c8e250763072 inherit pub_methods_classMPL_1_1env__base"><td class="memItemLeft" align="right" valign="top"><a id="a8c3490b413cb9a37dd40c8e250763072"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMPL_1_1env__base.html#a8c3490b413cb9a37dd40c8e250763072">set_tol_pos</a> (<a class="el" href="data__type_8h.html#a7c99d9360fc6cac2762b786e2fb52266">decimal_t</a> pos)</td></tr>
<tr class="memdesc:a8c3490b413cb9a37dd40c8e250763072 inherit pub_methods_classMPL_1_1env__base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set distance tolerance for goal region. <br /></td></tr>
<tr class="separator:a8c3490b413cb9a37dd40c8e250763072 inherit pub_methods_classMPL_1_1env__base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a868d8d096eff02ddc71dc7163271e671 inherit pub_methods_classMPL_1_1env__base"><td class="memItemLeft" align="right" valign="top"><a id="a868d8d096eff02ddc71dc7163271e671"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMPL_1_1env__base.html#a868d8d096eff02ddc71dc7163271e671">set_tol_vel</a> (<a class="el" href="data__type_8h.html#a7c99d9360fc6cac2762b786e2fb52266">decimal_t</a> vel)</td></tr>
<tr class="memdesc:a868d8d096eff02ddc71dc7163271e671 inherit pub_methods_classMPL_1_1env__base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set velocity tolerance for goal region. <br /></td></tr>
<tr class="separator:a868d8d096eff02ddc71dc7163271e671 inherit pub_methods_classMPL_1_1env__base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9d1c12973cfed2b1ceea81664008ed55 inherit pub_methods_classMPL_1_1env__base"><td class="memItemLeft" align="right" valign="top"><a id="a9d1c12973cfed2b1ceea81664008ed55"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMPL_1_1env__base.html#a9d1c12973cfed2b1ceea81664008ed55">set_tol_acc</a> (<a class="el" href="data__type_8h.html#a7c99d9360fc6cac2762b786e2fb52266">decimal_t</a> acc)</td></tr>
<tr class="memdesc:a9d1c12973cfed2b1ceea81664008ed55 inherit pub_methods_classMPL_1_1env__base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set acceleration tolerance for goal region. <br /></td></tr>
<tr class="separator:a9d1c12973cfed2b1ceea81664008ed55 inherit pub_methods_classMPL_1_1env__base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa2209dde7b5a71de3d4992232203d29a inherit pub_methods_classMPL_1_1env__base"><td class="memItemLeft" align="right" valign="top"><a id="aa2209dde7b5a71de3d4992232203d29a"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMPL_1_1env__base.html#aa2209dde7b5a71de3d4992232203d29a">set_tol_yaw</a> (<a class="el" href="data__type_8h.html#a7c99d9360fc6cac2762b786e2fb52266">decimal_t</a> yaw)</td></tr>
<tr class="memdesc:aa2209dde7b5a71de3d4992232203d29a inherit pub_methods_classMPL_1_1env__base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set acceleration tolerance for goal region. <br /></td></tr>
<tr class="separator:aa2209dde7b5a71de3d4992232203d29a inherit pub_methods_classMPL_1_1env__base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a78ffc9bb089726cf9813d57cfef43d03 inherit pub_methods_classMPL_1_1env__base"><td class="memItemLeft" align="right" valign="top"><a id="a78ffc9bb089726cf9813d57cfef43d03"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMPL_1_1env__base.html#a78ffc9bb089726cf9813d57cfef43d03">set_w</a> (<a class="el" href="data__type_8h.html#a7c99d9360fc6cac2762b786e2fb52266">decimal_t</a> w)</td></tr>
<tr class="memdesc:a78ffc9bb089726cf9813d57cfef43d03 inherit pub_methods_classMPL_1_1env__base"><td class="mdescLeft">&#160;</td><td class="mdescRight">set weight for cost in time, usually no need to change <br /></td></tr>
<tr class="separator:a78ffc9bb089726cf9813d57cfef43d03 inherit pub_methods_classMPL_1_1env__base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9cb1a2bea89036d66138005f2c90c903 inherit pub_methods_classMPL_1_1env__base"><td class="memItemLeft" align="right" valign="top"><a id="a9cb1a2bea89036d66138005f2c90c903"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMPL_1_1env__base.html#a9cb1a2bea89036d66138005f2c90c903">set_wyaw</a> (<a class="el" href="data__type_8h.html#a7c99d9360fc6cac2762b786e2fb52266">decimal_t</a> wyaw)</td></tr>
<tr class="memdesc:a9cb1a2bea89036d66138005f2c90c903 inherit pub_methods_classMPL_1_1env__base"><td class="mdescLeft">&#160;</td><td class="mdescRight">set weight for cost in yaw, usually no need to change <br /></td></tr>
<tr class="separator:a9cb1a2bea89036d66138005f2c90c903 inherit pub_methods_classMPL_1_1env__base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a65f49c4f4b83b84979976a5ebb3f192b inherit pub_methods_classMPL_1_1env__base"><td class="memItemLeft" align="right" valign="top"><a id="a65f49c4f4b83b84979976a5ebb3f192b"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMPL_1_1env__base.html#a65f49c4f4b83b84979976a5ebb3f192b">set_t_max</a> (int t)</td></tr>
<tr class="memdesc:a65f49c4f4b83b84979976a5ebb3f192b inherit pub_methods_classMPL_1_1env__base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set max time. <br /></td></tr>
<tr class="separator:a65f49c4f4b83b84979976a5ebb3f192b inherit pub_methods_classMPL_1_1env__base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a82c7c82438a5133e63fa208813a76e28 inherit pub_methods_classMPL_1_1env__base"><td class="memItemLeft" align="right" valign="top"><a id="a82c7c82438a5133e63fa208813a76e28"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMPL_1_1env__base.html#a82c7c82438a5133e63fa208813a76e28">set_goal</a> (const <a class="el" href="structWaypoint.html">Waypoint</a>&lt; Dim &gt; &amp;state)</td></tr>
<tr class="memdesc:a82c7c82438a5133e63fa208813a76e28 inherit pub_methods_classMPL_1_1env__base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set goal state. <br /></td></tr>
<tr class="separator:a82c7c82438a5133e63fa208813a76e28 inherit pub_methods_classMPL_1_1env__base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac736731d272b0b66b0a160e1c2e9a39c inherit pub_methods_classMPL_1_1env__base"><td class="memItemLeft" align="right" valign="top"><a id="ac736731d272b0b66b0a160e1c2e9a39c"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMPL_1_1env__base.html#ac736731d272b0b66b0a160e1c2e9a39c">set_search_region</a> (const std::vector&lt; bool &gt; &amp;search_region)</td></tr>
<tr class="memdesc:ac736731d272b0b66b0a160e1c2e9a39c inherit pub_methods_classMPL_1_1env__base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set valid search region (tunnel constraint) <br /></td></tr>
<tr class="separator:ac736731d272b0b66b0a160e1c2e9a39c inherit pub_methods_classMPL_1_1env__base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2b401fb26c98e874b926795e0d15ab2b inherit pub_methods_classMPL_1_1env__base"><td class="memItemLeft" align="right" valign="top"><a id="a2b401fb26c98e874b926795e0d15ab2b"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMPL_1_1env__base.html#a2b401fb26c98e874b926795e0d15ab2b">set_heur_ignore_dynamics</a> (bool ignore)</td></tr>
<tr class="memdesc:a2b401fb26c98e874b926795e0d15ab2b inherit pub_methods_classMPL_1_1env__base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set heur_ignore_dynamics. <br /></td></tr>
<tr class="separator:a2b401fb26c98e874b926795e0d15ab2b inherit pub_methods_classMPL_1_1env__base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aec97a7a04279da3c914fab83e71a6472 inherit pub_methods_classMPL_1_1env__base"><td class="memItemLeft" align="right" valign="top"><a id="aec97a7a04279da3c914fab83e71a6472"></a>
virtual <a class="el" href="data__type_8h.html#a7c99d9360fc6cac2762b786e2fb52266">decimal_t</a>&#160;</td><td class="memItemRight" valign="bottom"><b>calculate_intrinsic_cost</b> (const <a class="el" href="classPrimitive.html">Primitive</a>&lt; Dim &gt; &amp;pr) const</td></tr>
<tr class="separator:aec97a7a04279da3c914fab83e71a6472 inherit pub_methods_classMPL_1_1env__base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1f189e95f1445250ed2af48d0be09014 inherit pub_methods_classMPL_1_1env__base"><td class="memItemLeft" align="right" valign="top"><a id="a1f189e95f1445250ed2af48d0be09014"></a>
<a class="el" href="data__type_8h.html#a7c99d9360fc6cac2762b786e2fb52266">decimal_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMPL_1_1env__base.html#a1f189e95f1445250ed2af48d0be09014">get_dt</a> () const</td></tr>
<tr class="memdesc:a1f189e95f1445250ed2af48d0be09014 inherit pub_methods_classMPL_1_1env__base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve dt. <br /></td></tr>
<tr class="separator:a1f189e95f1445250ed2af48d0be09014 inherit pub_methods_classMPL_1_1env__base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2ce7924f21de1136dec56c9c2027ba71 inherit pub_methods_classMPL_1_1env__base"><td class="memItemLeft" align="right" valign="top"><a id="a2ce7924f21de1136dec56c9c2027ba71"></a>
std::vector&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMPL_1_1env__base.html#a2ce7924f21de1136dec56c9c2027ba71">get_search_region</a> () const</td></tr>
<tr class="memdesc:a2ce7924f21de1136dec56c9c2027ba71 inherit pub_methods_classMPL_1_1env__base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the valid region. <br /></td></tr>
<tr class="separator:a2ce7924f21de1136dec56c9c2027ba71 inherit pub_methods_classMPL_1_1env__base"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:a0d59fd81da8205001281395b80a4c6fa"><td class="memItemLeft" align="right" valign="top"><a id="a0d59fd81da8205001281395b80a4c6fa"></a>
std::shared_ptr&lt; <a class="el" href="classMPL_1_1MapUtil.html">MapUtil</a>&lt; Dim &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMPL_1_1env__map.html#a0d59fd81da8205001281395b80a4c6fa">map_util_</a></td></tr>
<tr class="memdesc:a0d59fd81da8205001281395b80a4c6fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Collision checking util. <br /></td></tr>
<tr class="separator:a0d59fd81da8205001281395b80a4c6fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae596cf73659ff74a03723acba510616d"><td class="memItemLeft" align="right" valign="top"><a id="ae596cf73659ff74a03723acba510616d"></a>
std::vector&lt; int8_t &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMPL_1_1env__map.html#ae596cf73659ff74a03723acba510616d">potential_map_</a></td></tr>
<tr class="memdesc:ae596cf73659ff74a03723acba510616d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Potential map, optional. <br /></td></tr>
<tr class="separator:ae596cf73659ff74a03723acba510616d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1255eaee11eb80ce0e7f3a53f1f9b94e"><td class="memItemLeft" align="right" valign="top"><a id="a1255eaee11eb80ce0e7f3a53f1f9b94e"></a>
<a class="el" href="data__type_8h.html#a6b9210d48a0a541940af71827aad1b41">vec_E</a>&lt; <a class="el" href="data__type_8h.html#a3a0c45655a5e009e56634ccde0c5c575">Vecf</a>&lt; Dim &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMPL_1_1env__map.html#a1255eaee11eb80ce0e7f3a53f1f9b94e">gradient_map_</a></td></tr>
<tr class="memdesc:a1255eaee11eb80ce0e7f3a53f1f9b94e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gradient map, optional. <br /></td></tr>
<tr class="separator:a1255eaee11eb80ce0e7f3a53f1f9b94e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3475ee37b51c1289a49726794b5b4451"><td class="memItemLeft" align="right" valign="top"><a id="a3475ee37b51c1289a49726794b5b4451"></a>
<a class="el" href="data__type_8h.html#a7c99d9360fc6cac2762b786e2fb52266">decimal_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMPL_1_1env__map.html#a3475ee37b51c1289a49726794b5b4451">potential_weight_</a> {0.1}</td></tr>
<tr class="memdesc:a3475ee37b51c1289a49726794b5b4451"><td class="mdescLeft">&#160;</td><td class="mdescRight">Weight of potential value. <br /></td></tr>
<tr class="separator:a3475ee37b51c1289a49726794b5b4451"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e41e4f10d5970bd03d512c7becce099"><td class="memItemLeft" align="right" valign="top"><a id="a5e41e4f10d5970bd03d512c7becce099"></a>
<a class="el" href="data__type_8h.html#a7c99d9360fc6cac2762b786e2fb52266">decimal_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMPL_1_1env__map.html#a5e41e4f10d5970bd03d512c7becce099">gradient_weight_</a> {0.0}</td></tr>
<tr class="memdesc:a5e41e4f10d5970bd03d512c7becce099"><td class="mdescLeft">&#160;</td><td class="mdescRight">Weight of gradient value. <br /></td></tr>
<tr class="separator:a5e41e4f10d5970bd03d512c7becce099"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pub_attribs_classMPL_1_1env__base"><td colspan="2" onclick="javascript:toggleInherit('pub_attribs_classMPL_1_1env__base')"><img src="closed.png" alt="-"/>&#160;Public Attributes inherited from <a class="el" href="classMPL_1_1env__base.html">MPL::env_base&lt; Dim &gt;</a></td></tr>
<tr class="memitem:a12ccadddac2cf7cf643ce4af8982054c inherit pub_attribs_classMPL_1_1env__base"><td class="memItemLeft" align="right" valign="top"><a id="a12ccadddac2cf7cf643ce4af8982054c"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMPL_1_1env__base.html#a12ccadddac2cf7cf643ce4af8982054c">heur_ignore_dynamics_</a> {true}</td></tr>
<tr class="memdesc:a12ccadddac2cf7cf643ce4af8982054c inherit pub_attribs_classMPL_1_1env__base"><td class="mdescLeft">&#160;</td><td class="mdescRight">if enabled, ignore dynamics when calculate heuristic <br /></td></tr>
<tr class="separator:a12ccadddac2cf7cf643ce4af8982054c inherit pub_attribs_classMPL_1_1env__base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5c6a2e729131e36e72b51266d887ae8f inherit pub_attribs_classMPL_1_1env__base"><td class="memItemLeft" align="right" valign="top"><a id="a5c6a2e729131e36e72b51266d887ae8f"></a>
<a class="el" href="data__type_8h.html#a7c99d9360fc6cac2762b786e2fb52266">decimal_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMPL_1_1env__base.html#a5c6a2e729131e36e72b51266d887ae8f">w_</a> {10.0}</td></tr>
<tr class="memdesc:a5c6a2e729131e36e72b51266d887ae8f inherit pub_attribs_classMPL_1_1env__base"><td class="mdescLeft">&#160;</td><td class="mdescRight">weight of time cost <br /></td></tr>
<tr class="separator:a5c6a2e729131e36e72b51266d887ae8f inherit pub_attribs_classMPL_1_1env__base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad47343816c81f60e207cd424a957c491 inherit pub_attribs_classMPL_1_1env__base"><td class="memItemLeft" align="right" valign="top"><a id="ad47343816c81f60e207cd424a957c491"></a>
<a class="el" href="data__type_8h.html#a7c99d9360fc6cac2762b786e2fb52266">decimal_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMPL_1_1env__base.html#ad47343816c81f60e207cd424a957c491">wyaw_</a> {1.0}</td></tr>
<tr class="memdesc:ad47343816c81f60e207cd424a957c491 inherit pub_attribs_classMPL_1_1env__base"><td class="mdescLeft">&#160;</td><td class="mdescRight">weight of yaw <br /></td></tr>
<tr class="separator:ad47343816c81f60e207cd424a957c491 inherit pub_attribs_classMPL_1_1env__base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac85f1da0ec8736ba5c379bbdb6634fe2 inherit pub_attribs_classMPL_1_1env__base"><td class="memItemLeft" align="right" valign="top"><a id="ac85f1da0ec8736ba5c379bbdb6634fe2"></a>
<a class="el" href="data__type_8h.html#a7c99d9360fc6cac2762b786e2fb52266">decimal_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMPL_1_1env__base.html#ac85f1da0ec8736ba5c379bbdb6634fe2">tol_pos_</a> {0.5}</td></tr>
<tr class="memdesc:ac85f1da0ec8736ba5c379bbdb6634fe2 inherit pub_attribs_classMPL_1_1env__base"><td class="mdescLeft">&#160;</td><td class="mdescRight">tolerance of position for goal region, 0.5 is the default <br /></td></tr>
<tr class="separator:ac85f1da0ec8736ba5c379bbdb6634fe2 inherit pub_attribs_classMPL_1_1env__base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2a6216a2e0a6fcd1bf2942b145daa889 inherit pub_attribs_classMPL_1_1env__base"><td class="memItemLeft" align="right" valign="top"><a id="a2a6216a2e0a6fcd1bf2942b145daa889"></a>
<a class="el" href="data__type_8h.html#a7c99d9360fc6cac2762b786e2fb52266">decimal_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMPL_1_1env__base.html#a2a6216a2e0a6fcd1bf2942b145daa889">tol_vel_</a> {-1.0}</td></tr>
<tr class="memdesc:a2a6216a2e0a6fcd1bf2942b145daa889 inherit pub_attribs_classMPL_1_1env__base"><td class="mdescLeft">&#160;</td><td class="mdescRight">tolerance of velocity for goal region, 0 means no tolerance <br /></td></tr>
<tr class="separator:a2a6216a2e0a6fcd1bf2942b145daa889 inherit pub_attribs_classMPL_1_1env__base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac49a422f3e1b826123a12389024b9c50 inherit pub_attribs_classMPL_1_1env__base"><td class="memItemLeft" align="right" valign="top"><a id="ac49a422f3e1b826123a12389024b9c50"></a>
<a class="el" href="data__type_8h.html#a7c99d9360fc6cac2762b786e2fb52266">decimal_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMPL_1_1env__base.html#ac49a422f3e1b826123a12389024b9c50">tol_acc_</a> {-1.0}</td></tr>
<tr class="memdesc:ac49a422f3e1b826123a12389024b9c50 inherit pub_attribs_classMPL_1_1env__base"><td class="mdescLeft">&#160;</td><td class="mdescRight">tolerance of acceleration for goal region, 0 means no tolerance <br /></td></tr>
<tr class="separator:ac49a422f3e1b826123a12389024b9c50 inherit pub_attribs_classMPL_1_1env__base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aee3b399510cbd3dc9690d65f0c099673 inherit pub_attribs_classMPL_1_1env__base"><td class="memItemLeft" align="right" valign="top"><a id="aee3b399510cbd3dc9690d65f0c099673"></a>
<a class="el" href="data__type_8h.html#a7c99d9360fc6cac2762b786e2fb52266">decimal_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMPL_1_1env__base.html#aee3b399510cbd3dc9690d65f0c099673">tol_yaw_</a> {-1.0}</td></tr>
<tr class="memdesc:aee3b399510cbd3dc9690d65f0c099673 inherit pub_attribs_classMPL_1_1env__base"><td class="mdescLeft">&#160;</td><td class="mdescRight">tolerance of yaw for goal region, 0 means no tolerance <br /></td></tr>
<tr class="separator:aee3b399510cbd3dc9690d65f0c099673 inherit pub_attribs_classMPL_1_1env__base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adcd1fa1f64b3b836228d9a79f91dff0e inherit pub_attribs_classMPL_1_1env__base"><td class="memItemLeft" align="right" valign="top"><a id="adcd1fa1f64b3b836228d9a79f91dff0e"></a>
<a class="el" href="data__type_8h.html#a7c99d9360fc6cac2762b786e2fb52266">decimal_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMPL_1_1env__base.html#adcd1fa1f64b3b836228d9a79f91dff0e">v_max_</a> {-1.0}</td></tr>
<tr class="memdesc:adcd1fa1f64b3b836228d9a79f91dff0e inherit pub_attribs_classMPL_1_1env__base"><td class="mdescLeft">&#160;</td><td class="mdescRight">max velocity <br /></td></tr>
<tr class="separator:adcd1fa1f64b3b836228d9a79f91dff0e inherit pub_attribs_classMPL_1_1env__base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7be6859be90f54ef175482d0aa6020c9 inherit pub_attribs_classMPL_1_1env__base"><td class="memItemLeft" align="right" valign="top"><a id="a7be6859be90f54ef175482d0aa6020c9"></a>
<a class="el" href="data__type_8h.html#a7c99d9360fc6cac2762b786e2fb52266">decimal_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMPL_1_1env__base.html#a7be6859be90f54ef175482d0aa6020c9">a_max_</a> {-1.0}</td></tr>
<tr class="memdesc:a7be6859be90f54ef175482d0aa6020c9 inherit pub_attribs_classMPL_1_1env__base"><td class="mdescLeft">&#160;</td><td class="mdescRight">max acceleration <br /></td></tr>
<tr class="separator:a7be6859be90f54ef175482d0aa6020c9 inherit pub_attribs_classMPL_1_1env__base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6a67a6409ed46cd0c04f095a18996178 inherit pub_attribs_classMPL_1_1env__base"><td class="memItemLeft" align="right" valign="top"><a id="a6a67a6409ed46cd0c04f095a18996178"></a>
<a class="el" href="data__type_8h.html#a7c99d9360fc6cac2762b786e2fb52266">decimal_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMPL_1_1env__base.html#a6a67a6409ed46cd0c04f095a18996178">j_max_</a> {-1.0}</td></tr>
<tr class="memdesc:a6a67a6409ed46cd0c04f095a18996178 inherit pub_attribs_classMPL_1_1env__base"><td class="mdescLeft">&#160;</td><td class="mdescRight">max jerk <br /></td></tr>
<tr class="separator:a6a67a6409ed46cd0c04f095a18996178 inherit pub_attribs_classMPL_1_1env__base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6d1787397e20de82495fb9c381c14980 inherit pub_attribs_classMPL_1_1env__base"><td class="memItemLeft" align="right" valign="top"><a id="a6d1787397e20de82495fb9c381c14980"></a>
<a class="el" href="data__type_8h.html#a7c99d9360fc6cac2762b786e2fb52266">decimal_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMPL_1_1env__base.html#a6d1787397e20de82495fb9c381c14980">yaw_max_</a> {-1.0}</td></tr>
<tr class="memdesc:a6d1787397e20de82495fb9c381c14980 inherit pub_attribs_classMPL_1_1env__base"><td class="mdescLeft">&#160;</td><td class="mdescRight">max yaw <br /></td></tr>
<tr class="separator:a6d1787397e20de82495fb9c381c14980 inherit pub_attribs_classMPL_1_1env__base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad592f0117a0ef0ac15225855ae62c4cc inherit pub_attribs_classMPL_1_1env__base"><td class="memItemLeft" align="right" valign="top"><a id="ad592f0117a0ef0ac15225855ae62c4cc"></a>
<a class="el" href="data__type_8h.html#a7c99d9360fc6cac2762b786e2fb52266">decimal_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMPL_1_1env__base.html#ad592f0117a0ef0ac15225855ae62c4cc">t_max_</a> {std::numeric_limits&lt;<a class="el" href="data__type_8h.html#a7c99d9360fc6cac2762b786e2fb52266">decimal_t</a>&gt;::infinity()}</td></tr>
<tr class="memdesc:ad592f0117a0ef0ac15225855ae62c4cc inherit pub_attribs_classMPL_1_1env__base"><td class="mdescLeft">&#160;</td><td class="mdescRight">max time <br /></td></tr>
<tr class="separator:ad592f0117a0ef0ac15225855ae62c4cc inherit pub_attribs_classMPL_1_1env__base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a75662e4867f05ecc21cd1232d2126a11 inherit pub_attribs_classMPL_1_1env__base"><td class="memItemLeft" align="right" valign="top"><a id="a75662e4867f05ecc21cd1232d2126a11"></a>
<a class="el" href="data__type_8h.html#a7c99d9360fc6cac2762b786e2fb52266">decimal_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMPL_1_1env__base.html#a75662e4867f05ecc21cd1232d2126a11">dt_</a> {1.0}</td></tr>
<tr class="memdesc:a75662e4867f05ecc21cd1232d2126a11 inherit pub_attribs_classMPL_1_1env__base"><td class="mdescLeft">&#160;</td><td class="mdescRight">duration of primitive <br /></td></tr>
<tr class="separator:a75662e4867f05ecc21cd1232d2126a11 inherit pub_attribs_classMPL_1_1env__base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a632147ec3e706f2bf10fb196c9d0a38c inherit pub_attribs_classMPL_1_1env__base"><td class="memItemLeft" align="right" valign="top"><a id="a632147ec3e706f2bf10fb196c9d0a38c"></a>
<a class="el" href="data__type_8h.html#a6b9210d48a0a541940af71827aad1b41">vec_E</a>&lt; <a class="el" href="data__type_8h.html#a07429e7561c286f5368c5babef590194">VecDf</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMPL_1_1env__base.html#a632147ec3e706f2bf10fb196c9d0a38c">U_</a></td></tr>
<tr class="memdesc:a632147ec3e706f2bf10fb196c9d0a38c inherit pub_attribs_classMPL_1_1env__base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Array of constant control input. <br /></td></tr>
<tr class="separator:a632147ec3e706f2bf10fb196c9d0a38c inherit pub_attribs_classMPL_1_1env__base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8e6706c18fa58da08174f7c0c8209312 inherit pub_attribs_classMPL_1_1env__base"><td class="memItemLeft" align="right" valign="top"><a id="a8e6706c18fa58da08174f7c0c8209312"></a>
<a class="el" href="structWaypoint.html">Waypoint</a>&lt; Dim &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMPL_1_1env__base.html#a8e6706c18fa58da08174f7c0c8209312">goal_node_</a></td></tr>
<tr class="memdesc:a8e6706c18fa58da08174f7c0c8209312 inherit pub_attribs_classMPL_1_1env__base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Goal node. <br /></td></tr>
<tr class="separator:a8e6706c18fa58da08174f7c0c8209312 inherit pub_attribs_classMPL_1_1env__base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad12eb1d6268bebc2542a875a3278551a inherit pub_attribs_classMPL_1_1env__base"><td class="memItemLeft" align="right" valign="top"><a id="ad12eb1d6268bebc2542a875a3278551a"></a>
<a class="el" href="data__type_8h.html#a6b9210d48a0a541940af71827aad1b41">vec_E</a>&lt; std::pair&lt; <a class="el" href="structWaypoint.html">Waypoint</a>&lt; Dim &gt;, <a class="el" href="data__type_8h.html#a7c99d9360fc6cac2762b786e2fb52266">decimal_t</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMPL_1_1env__base.html#ad12eb1d6268bebc2542a875a3278551a">prior_traj_</a></td></tr>
<tr class="memdesc:ad12eb1d6268bebc2542a875a3278551a inherit pub_attribs_classMPL_1_1env__base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prior trajectory. <br /></td></tr>
<tr class="separator:ad12eb1d6268bebc2542a875a3278551a inherit pub_attribs_classMPL_1_1env__base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8873f64d0e619a9945fc3be17b88c227 inherit pub_attribs_classMPL_1_1env__base"><td class="memItemLeft" align="right" valign="top"><a id="a8873f64d0e619a9945fc3be17b88c227"></a>
std::vector&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMPL_1_1env__base.html#a8873f64d0e619a9945fc3be17b88c227">search_region_</a></td></tr>
<tr class="memdesc:a8873f64d0e619a9945fc3be17b88c227 inherit pub_attribs_classMPL_1_1env__base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Valid search region (tunnel constraint) <br /></td></tr>
<tr class="separator:a8873f64d0e619a9945fc3be17b88c227 inherit pub_attribs_classMPL_1_1env__base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a407c61fa8bfdefc3012546f0c412acd3 inherit pub_attribs_classMPL_1_1env__base"><td class="memItemLeft" align="right" valign="top"><a id="a407c61fa8bfdefc3012546f0c412acd3"></a>
<a class="el" href="data__type_8h.html#a0a3b37beb40c06edc02cb4b7339f2b96">vec_Vecf</a>&lt; Dim &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMPL_1_1env__base.html#a407c61fa8bfdefc3012546f0c412acd3">expanded_nodes_</a></td></tr>
<tr class="memdesc:a407c61fa8bfdefc3012546f0c412acd3 inherit pub_attribs_classMPL_1_1env__base"><td class="mdescLeft">&#160;</td><td class="mdescRight">expanded nodes for debug <br /></td></tr>
<tr class="separator:a407c61fa8bfdefc3012546f0c412acd3 inherit pub_attribs_classMPL_1_1env__base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1d96af4d1aa7e1a15924316fae89174e inherit pub_attribs_classMPL_1_1env__base"><td class="memItemLeft" align="right" valign="top"><a id="a1d96af4d1aa7e1a15924316fae89174e"></a>
<a class="el" href="data__type_8h.html#a6b9210d48a0a541940af71827aad1b41">vec_E</a>&lt; <a class="el" href="classPrimitive.html">Primitive</a>&lt; Dim &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMPL_1_1env__base.html#a1d96af4d1aa7e1a15924316fae89174e">expanded_edges_</a></td></tr>
<tr class="memdesc:a1d96af4d1aa7e1a15924316fae89174e inherit pub_attribs_classMPL_1_1env__base"><td class="mdescLeft">&#160;</td><td class="mdescRight">expanded edges for debug <br /></td></tr>
<tr class="separator:a1d96af4d1aa7e1a15924316fae89174e inherit pub_attribs_classMPL_1_1env__base"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;int Dim&gt;<br />
class MPL::env_map&lt; Dim &gt;</h3>

<p>Voxel map environment. </p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="ad508bed13e2c697cb14a597615424d9f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad508bed13e2c697cb14a597615424d9f">&#9670;&nbsp;</a></span>get_succ()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;int Dim&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classMPL_1_1env__map.html">MPL::env_map</a>&lt; Dim &gt;::get_succ </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structWaypoint.html">Waypoint</a>&lt; Dim &gt; &amp;&#160;</td>
          <td class="paramname"><em>curr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="data__type_8h.html#a6b9210d48a0a541940af71827aad1b41">vec_E</a>&lt; <a class="el" href="structWaypoint.html">Waypoint</a>&lt; Dim &gt;&gt; &amp;&#160;</td>
          <td class="paramname"><em>succ</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; <a class="el" href="data__type_8h.html#a7c99d9360fc6cac2762b786e2fb52266">decimal_t</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>succ_cost</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; int &gt; &amp;&#160;</td>
          <td class="paramname"><em>action_idx</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get successor. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">curr</td><td>The node to expand </td></tr>
    <tr><td class="paramname">succ</td><td>The array stores valid successors </td></tr>
    <tr><td class="paramname">succ_cost</td><td>The array stores cost along valid edges </td></tr>
    <tr><td class="paramname">action_idx</td><td>The array stores corresponding idx of control input for each successor</td></tr>
  </table>
  </dd>
</dl>
<p>When goal is outside, extra step is needed for finding optimal trajectory. Only return the primitive satisfies valid dynamic constriants (include the one hits obstacles). </p>

<p>Reimplemented from <a class="el" href="classMPL_1_1env__base.html#a79b4bcc2a220c691b742593ca7fd4217">MPL::env_base&lt; Dim &gt;</a>.</p>

</div>
</div>
<a id="a7229298e89baa8b1acb1ed1affda30a4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7229298e89baa8b1acb1ed1affda30a4">&#9670;&nbsp;</a></span>is_free()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;int Dim&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classMPL_1_1env__map.html">MPL::env_map</a>&lt; Dim &gt;::is_free </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classPrimitive.html">Primitive</a>&lt; Dim &gt; &amp;&#160;</td>
          <td class="paramname"><em>pr</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Check if the primitive is in free space. </p>
<p>Sample points along the primitive, and check each point for collision; the number of sampling is calculated based on the maximum velocity and resolution of the map. </p>

<p>Reimplemented from <a class="el" href="classMPL_1_1env__base.html#a8530f5d66d3ec8b677e67846b83af6d2">MPL::env_base&lt; Dim &gt;</a>.</p>

</div>
</div>
<a id="a84ab1c20552e01476e40cc5f116d4d73"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a84ab1c20552e01476e40cc5f116d4d73">&#9670;&nbsp;</a></span>traverse_primitive()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;int Dim&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="data__type_8h.html#a7c99d9360fc6cac2762b786e2fb52266">decimal_t</a> <a class="el" href="classMPL_1_1env__map.html">MPL::env_map</a>&lt; Dim &gt;::traverse_primitive </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classPrimitive.html">Primitive</a>&lt; Dim &gt; &amp;&#160;</td>
          <td class="paramname"><em>pr</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Accumulate the cost along the primitive. </p>
<p>Sample points along the primitive, and sum up the cost of each point; number of sampling is calculated based on the maximum velocity and resolution of the map.</p>
<p>If the potential map has been set, it also uses the potential values; otherwise, the accumulated value will be zero for collision-free primitive and infinity for others. </p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>include/mpl_planner/env/<a class="el" href="env__map_8h_source.html">env_map.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>
